Skip to main content

Ssh 端口映射

ssh -f root@192.168.0.100 -L 8080:192.168.0.100:80 -N

-f 要求ssh在执行命令前退至后台。

-L port:host:hostport 将本地机(客户机)的某个端口转发到远端指定机器的指定端口。工作原理是这样的,本地机器上分配了一个socket监听port端口,一旦这个端口上有了连接,该连接就经过安全通道转发出去,同时远程主机和host的hostport端口建立连接。可以在配置文件中指定端口的转发。只有root才能转发特权端口。IPv6地址用另一种格式说明:port/host/hostport

-N 不执行远程命令。用于转发端口(限协议第二版)

-1 强制ssh只使用协议第一版
-2 强制ssh只使用协议第二版
-4 强制ssh只使用IPv4地址
-6 强制shh只使用IPv6地址
-a 禁止转发认证代理的连接
-A 允许转发认证代理的连接
代理转发需谨慎。默写用户能够在远程主机上绕过文件访问权限(由于代理的UNIX域socket(套接字)),他们可以通过转发的连接访问本地代理。攻击者不可能从代理获得密钥内容但是他们能够操作这些密钥,利用加载到代理上的身份信息通过认证。
-b bin_address 在用过多个接口或地址别名的机器上,指定收发接口
-c blowfish|3des|des 选择加密会话的密码术。3des是默认算法,3des(triple-des)用三支不同的密钥做加密-解密-加密三次运算,被认为比较可靠。blowfish是一种快速的分组加密术(block cipher),非常安全,而且速度笔3des快的多。des仅支持ssh客户端,目的是能够和老式的不支持3des的协议第一版互操作。由于其密码算法上的弱点,强烈建议避免使用。
-c cipher_spec 另外,对于协议第二版,这里可以指定一组用逗号隔开,按优先顺序排列的密码数,详见Ciphers
-e ch|^ch|none 设置pty会话的escape字符(默认字符~)。escape字符只在行首有效,escape字符后面跟一个点(.)表示结束连接,跟一个control-Z表示挂起连接(suspend),跟escape字符自己表示输出这个字符。把这个字符设为none则禁止escape功能,使会话完全透明。
-f 要求ssh在执行命令前退至后台。它用于当ssh准备询问口令或密语,但是用户希望它在后台进行。该选项隐含了-n选项。在远端及其上启动X11程序的推荐手法就是类似于ssh –f host xterm的命令
-g 允许远端主机连接本地转发的端口
-i identity_file 指定一个RSA或DSA认证所需的身份(私钥)文件。默认文件是协议第一版的$HOME/.ssh/identity以及协议第二版的$HOME/.ssh/id_rsa和$HOME/.ssh/id_dsa文件。也可以在配置文件中对每个主机单独指定身份文件。可以同时使用多个-i选项(也可以在配置文件中指定多个身份文件)
-I smartcard_device 指定智能卡(smartcard)设备。参数是设备文件,ssh能够用它和智能卡通信买智能卡里面存储了用户的RSA私钥。
-k 禁止转发Kerberos门票和AFS令牌。可以在配置文件中对每个主机单独设置这个参数。
-l login_name 指定登录远程主机的用户。可以在配置文件中对每个主机单独设置这个参数。
-m mac_spec 另外,对于协议第二版,这里可以指定一组逗号隔开,按优先顺序排列的MAC(消息验证码)算法(message authentication code)。详细以MACs为关键字查询。
-n 把stdin重定向到/dev/null(实际上防止从stdin读取数据)。ssh在后台运行时一定会用到这个选项。它的常用技巧是远程运行X11程序。例如,ssh -n shadows.cs.hut.fi emacs &将会在shadows.cs.hut.fi上启动emacs,同时自动在加密通道中转发X11连接。Ssh在后台运行。(但是如果ssh要求口令或密语,这种方式就无法工作;参见-f选项)
-N 不执行远程命令。用于转发端口(限协议第二版)
-o option 可以在这里给出默写选项,格式和配置文件中的格式一样。它用来设置那些没有命令行开关的选项。
-p port 指定远程主机的端口。可以在配置文件中对每个主机单独设定这个参数。
-q 安静模式。消除所有警告和诊断信息。
-s 请求远程系统激活一个子系统。子系统是SSH2协议的一个特性,能够协助其他应用程序(如sftp)把SSH用做安全通路。子系统通过远程命令指定。
-t 强制分配伪终端。可以在远程机器上执行任何全屏幕(screen-based)程序,所以非常有用,例如菜单服务。并联的-t选项强制分配终端,即使ssh没有本地终端。
-T 禁止分配伪终端
-v 冗详模式。使ssh打印关于运行情况的调试信息。在调试连接,认证和配置问题时非常有用。并联的-v选项能够增加冗详程度。最多为三个
-x 禁止X11转发。
-X 允许X11转发。可以在配置文件中对每个主机单独设置这个参数。
应该谨慎使用X11转发。如果用户在远程主机上能够绕过文件访问权限(根据用户的X授权数据库),他就可以通过转发的连接访问本地X11显示器。攻击者可以据此采取行动,如监视键盘输入等。
-C 要求进行数据压缩(包括stdin,stdout,stderr以及转发X11和TCP/IP连接的数据)。压缩算法和gzip(1)的一样,协议第一版中,压缩级别’level’用CompressionLevel选项控制。压缩技术在modem线路或其他慢速连接上很有用,但是在高速网络上反而可能降低速度。可以在配置文件中对每个主机单独设置这个参数。另见Compression选项。
-F configfile 指定一个用户级配置文件。如果在命令行上指定了配置文件,系统级配置文件(/etc/ssh/ssh_config)将被忽略。默认的用户级配置文件是$HOME/.ssh/config
-L port:host:hostport 将本地机(客户机)的某个端口转发到远端指定机器的指定端口。工作原理是这样的,本地机器上分配了一个socket监听port端口,一旦这个端口上有了连接,该连接就经过安全通道转发出去,同时远程主机和host的hostport端口建立连接。可以在配置文件中指定端口的转发。只有root才能转发特权端口。IPv6地址用另一种格式说明:port/host/hostport
-R port:host:hostport 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口。工作原理是这样的,远程主机上分配一个socket监听port端口,一旦这个端口上有了连接,该连接经过安全通道转向出去,同时本地主机和host的hostport端口建立连接。可以在配置文件中指定端口的转发。只有用root登录远程主机才能转发特权端口。IPv6地址使用另一种格式:port/host/hostport
-D port 指定一个本地机器“动态的”应用程序端口转发。工作原理是这样的,本地机器上分配一个socket监听port端口,一旦这个端口上有了连接,该连接就经过安全通道转发出去,根据应用程序的协议可以判断出远程主机将和哪里连接。目前支持SOCKS4可以在配置文件中指定动态端口的转发